package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import pojo.Zzjl;
import service.ZzjlService;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 症状记录表控制器
 */
@RestController
@CrossOrigin(origins = "*")
@RequestMapping("/zzjl")
public class ZzjlController {
    @Autowired
    private ZzjlService zzjlService;

    // 根据ID查询症状记录
    @GetMapping("/{id}")
    public Zzjl getZzjlById(@PathVariable Integer id) {
        return zzjlService.findZzjlById(id);
    }

    // 查询用户的症状记录
    @GetMapping("/user/{yhId}")
    public List<Zzjl> getByYhId(@PathVariable Integer yhId) {
        return zzjlService.findByYhId(yhId);
    }

    // 查询用户指定时间段的症状记录
    @GetMapping("/user/{yhId}/time")
    public List<Zzjl> getByTimeRange(
            @PathVariable Integer yhId,
            @RequestParam LocalDateTime startTime,
            @RequestParam LocalDateTime endTime
    ) {
        return zzjlService.findByTimeRange(yhId, startTime, endTime);
    }

    // 新增症状记录
    @PostMapping("/add")
    public int addZzjl(@RequestBody Zzjl zzjl) {
        return zzjlService.add(zzjl);
    }

    // 更新症状记录
    @PutMapping("/update")
    public int updateZzjl(@RequestBody Zzjl zzjl) {
        return zzjlService.update(zzjl);
    }

    // 删除症状记录
    @DeleteMapping("/{id}")
    public int deleteZzjl(@PathVariable Integer id) {
        return zzjlService.deleteById(id);
    }

    // 删除用户的症状记录
    @DeleteMapping("/user/{yhId}")
    public int deleteByYhId(@PathVariable Integer yhId) {
        return zzjlService.deleteByYhId(yhId);
    }
}